﻿using System;
using Voluntariar.Sistema.DAO;
using Voluntariar.Sistema.Entidades;

namespace Cadastro.WEB
{
    public partial class CadastroUsuario : Voluntariar.WEB.Util.PaginaBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {

            }
            catch (Exception ex)
            {
                TratarErro(ex);
            }
        }

        protected void lnbCadastrar_Click(object sender, EventArgs e)
        {
            try
            {
                string sImageFileExtension;
                Usuarios users = new Usuarios();

                if (this.UploadUserPhoto.HasFile)
                {
                    if (ValidaCadastro())
                    {
                        string myMap = MapPath("~/").ToLower();
                        Random r = new Random();
                        int next = r.Next();
                        string ImageName = UploadUserPhoto.PostedFile.FileName;


                        sImageFileExtension = ImageName.Substring(ImageName.LastIndexOf(".")).ToLower();
                        if (sImageFileExtension == ".gif" || sImageFileExtension == ".png" || sImageFileExtension == ".jpg" || sImageFileExtension == ".jpeg" || sImageFileExtension == ".bmp")
                        {


                            string ImageSaveURL = myMap + "ImagemUsuarios/" + next + sImageFileExtension;
                            try
                            {
                                UploadUserPhoto.PostedFile.SaveAs(ImageSaveURL);
                                users.cpf = txtCPF.Text;
                                users.nome = txtNome.Text;
                                users.email = txtLogin.Text;
                                users.senha = txtSenha.Text;
                                users.descricao = txtDescricao.Text;
                                users.imagem = next + sImageFileExtension;
                                users.datacadastro = DateTime.Now;
                                users.quantidadeViews = 1;

                                UsuarioDAO.Salvar(users);
                                Response.Redirect("~/Login.aspx", false);
                            }
                            catch (Exception ex)
                            {
                                TratarErro(ex);
                            }

                        }
                        else
                        {
                            Util.Mensagem.MensagemTemporizada("Extensão de arquivo inválida !");
                        }
                    }
                }
                else
                {
                    if (ValidaCadastro())
                    {
                        sImageFileExtension = "Image";
                        users.cpf = txtCPF.Text;
                        users.nome = txtNome.Text;
                        users.email = txtLogin.Text;
                        users.senha = txtSenha.Text;
                        users.descricao = txtDescricao.Text;
                        users.imagem = sImageFileExtension;
                        users.datacadastro = DateTime.Now;
                        users.quantidadeViews = 1;
                        
                        UsuarioDAO.Salvar(users);
                        Response.Redirect("~/Login.aspx", false);
                    }
                }

            }
            catch (Exception ex)
            {
                TratarErro(ex);
            }

        }

        public bool ValidaCadastro()
        {
            try
            {
                Usuarios users = new Usuarios();
                users.cpf = txtCPF.Text;

                if (UsuarioDAO.Pesquisar(users).Count > 0)
                {
                    Util.Mensagem.Alerta("CPF ja cadastrado !");
                    txtCPF.Text = string.Empty;
                    txtCPF.Focus();
                    return false;
                }
                users = new Usuarios();
                users.email = txtLogin.Text;

                if (UsuarioDAO.Pesquisar(users).Count > 0)
                {
                    Util.Mensagem.Alerta("Email ja cadastrado !");
                    txtLogin.Text = string.Empty;
                    txtLogin.Focus();
                    return false;
                }

                if (!Voluntariar.Sistema.Utils.isCPFValido(txtCPF.Text))
                {
                    Util.Mensagem.Alerta("CPF invalido !");
                    return false;
                }

                return true;
            }
            catch (Exception ex)
            {
                TratarErro(ex);
                return false;
            }
        }
    }
}
